//不定参宏函数的使用

// #include<stdio.h>

// #define LOG(fmt,...) printf("[%s:%d]"fmt,__FILE__,__LINE__,##__VA_ARGS__);
// int main()
// {
//     LOG("测试课");
//     return 0;
// }

//C语言中不定参函数的使用，不定参数据的访问
#define _GNU_SOURCE
#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>

void printNum(int count,...)
{
    va_list ap;
    va_start(ap,count);
    for(int i=0;i<count;i++){
        int num=va_arg(ap,int);
        printf("param[%d]: %d\n",i,num);
    }
    va_end(ap);
}
void myprintf(const char* fmt,...)
{
    char* buffer=NULL;
    va_list ap;
    va_start(ap,fmt);
    int ret=vasprintf(&buffer,fmt,ap);
    if(ret!=-1){
        fputs(buffer,stdout);
        free(buffer);
    }
    va_end(ap);
}
int main()
{
    printNum(3,111,222,'a');
    myprintf("%s-%d班","计算机科学与技术\n",4);
    return 0;
}